home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1986-12-16 | 4.3 KB | 127 lines
1 ' "AARDVARK.BAS",A 2 'from COMPUTE!'s PC & PCjr June 1984 3 'Original program by Todd Heimark 4 'IBM translation by Tim Victor 5 ' 6 ' 10 CB=7:CI=12:CP=11:CS=2:CL=15 20 WIDTH 40:COLOR 7,0,0:CLS:LOCATE 1,2,0:KEY OFF:DEF SEG=0:POKE 1047,96 30 DIM P$(1):P$(0)=CHR$(15):P$(1)="o":SC=0:HI=0:D=1:DIM D$(6): 40 COLOR CS:LOCATE 3,12:PRINT "AARDVARK ATTACK" 50 NL=41:NS=32767:SOUND NL,10:SOUND NS,1:SOUND NL,4:SOUND NL*1.19,10:SOUND NL,10 60 LOCATE 22,6:PRINT "Do you want instructions? (Y/N)" 61 A$=INKEY$: IF A$="" OR (A$<>"Y" AND A$<>"N") THEN 61 62 IF A$="N" THEN 85 :IF A$="Y" THEN 63 63 ' Instructions 64 CLS:LOCATE 1,1: 65 PRINT"Earth is being attacked again! Mutant aardvarks from Andromeda are dropping alphanumeric bombs.":LOCATE 6,1: 66 PRINT"There are 26 types of bombs each needinga different type of defense.For example,typing the letter Q will set up the Q defense against Q-bombs.": 67 LOCATE 11,1:PRINT"Also, to save your city from attack you must type its number." 68 LOCATE 14,1:PRINT" -The game can be paused by typing the":PRINT" ] key. To continue, press ENTER." 69 LOCATE 17,1:PRINT" -To change levels, type the ] key":LOCATE 18,1: 70 PRINT" followed by the new level desired." 72 LOCATE 20,1:PRINT" -To END, type the ] key followed by the E key. 73 LOCATE 22,10:PRINT"To begin the game, press the SPACE bar." 80 A$=INKEY$: IF A$="" OR (A$<>" ") THEN 80:IF A$=" " THEN 85 85 'DRAW SCREEN 90 CLS:S$="WHILEWHILEWHILEWHILEWHILEOPEN OPENWHILEWHILEWHILEWHILEWHILEWHILELINELINELINELINELINELINELINELINELINELINELINELINELINE" 100 COLOR CB 110 FOR I=1 TO 24:LOCATE I,1:PRINT S$;:NEXT 120 COLOR CP 130 LOCATE 20,8:PRINT "1234567890";:FOR I=21 TO 24:LOCATE I,8:PRINT "LINELINELINELINELINELINELINELINELINELINE";:NEXT 140 COLOR CS 150 LOCATE 19,27:PRINT "Level "; 160 LOCATE 20,27:PRINT " "; 170 LOCATE 21,27:PRINT "Score "; 180 LOCATE 22,27:PRINT " "; 190 LOCATE 23,27:PRINT "High "; 200 GOSUB 560 210 FOR I=3 TO 11:LOCATE I,28:PRINT " ";:NEXT 220 COLOR CS 230 GOSUB 730 240 LOCATE 1,1:PRINT "Enter difficulty level (0=Easy/9=Hard)" 250 GOSUB 660 260 ' CHOOSE BOMB AND CITY 270 COLOR CB 280 LOCATE 1,1:PRINT S$; 290 Z=(RND*26000):Z=INT(Z-INT(Z/26)*26):RESTORE:FOR J=1 TO Z:READ A1,A2,A3,A4,A5,A6,A7:NEXT 300 FOR I=0 TO 6:D$(I)=" ":READ A%:FOR J=1 TO 7:B%=(A%>63):MID$(D$(I),J)=CHR$(32-B%*187):A%=(A%+B%*64)*2:NEXT:NEXT 305 COLOR C1 310 FOR I=1 TO 40:N=INT(RND*10):IF N THEN LOCATE 1,N+7 ELSE LOCATE 1,17 330 PRINT CHR$(178);:SOUND 261.6*2^(N/12),1:NEXT 340 LY=0 350 COLOR CL 360 FOR I=4 TO 10: LOCATE I,29:PRINT D$(I-4);:NEXT 370 COLOR CI 380 ' THE AARDVARKS ATTACK 390 IF N THEN C=N+7 ELSE C=17 400 R=2:WHILE SCREEN(R,C)=32 :LOCATE R,C:PRINT P$(LY);:SOUND 50*(24-R),1:FOR K=1 TO HF:A$=INKEY$ 410 IF A$="" THEN 450 420 IF A$="]" THEN COLOR CS:GOSUB 660:COLOR CI:GOTO 450 430 IF LY=1 THEN IF ASC(A$)-48=N THEN COLOR CS:GOSUB 530:COLOR CI:GOTO 490 440 IF LY=0 THEN IF ASC(A$)-65=Z THEN LY=1 450 NEXT:R=R+1:WEND 460 ' ATTACK SUCCESSFUL 470 LOCATE R,C:PRINT P$(LY);:IF R=24 THEN 630 480 IF LY=0 THEN R=R+1:LOCATE R,C:PRINT P$(LY);:IF R=24 THEN 630 485 FOR I=1 TO 2:SOUND 50*(24-R),2:SOUND NS,2:NEXT:SOUND 50*(24-R),5 490 FOR I=2 TO R:LOCATE I,C:PRINT " ";:NEXT 500 FOR I=3 TO 11:LOCATE I,28:PRINT " ";:NEXT 510 GOTO 260 520 , ATTACK THWARTED 530 SC=SC+2^(D-1) 535 SOUND 164.8,4:SOUND NS,1:SOUND 164.8,2:SOUND 220,10 540 IF R<6 THEN SC=SC+2^(D-1) 550 IF R<12 THEN SC=SC+2^(D-1) 560 B$=STR$(SC):B$=LEFT$("00000",6-LEN(B$))+MID$(B$,2,LEN(B$)-1) 570 LOCATE 21,33:PRINT B$; 580 IF SC>HI THEN HI=SC 590 B$=STR$(HI):B$=LEFT$("00000",6-LEN(B$))+MID$(B$,2,LEN(B$)-1) 600 LOCATE 23,33:PRINT B$ 610 RETURN 620 ' GAME OVER 630 SC=0 635 FOR J=1 TO 12:FOR I=400 TO 240 STEP -80:SOUND I,1:NEXT:LOCATE J*2,1:PRINT " ";:NEXT 637 LOCATE 1,1:PRINT" Play again? (Y OR N) " 638 A$=INKEY$:IF A$="" THEN 638 639 IF A$="N" THEN A$="E":GOTO 680 640 GOTO 100 650 ' SET DIFFICULTY 660 A$=INKEY$:IF A$<>"" THEN 660 670 A$=INKEY$:IF A$="" THEN 670 680 IF A$="E" THEN POKE 1047,64:CLS:COLOR 7:SYSTEM 690 IF ASC(A$)=13 THEN 750 700 IF ASC(A$)<48 THEN 670 710 IF ASC(A$)>57 THEN 670 720 D=ASC(A$)-47 730 HF=INT(100/(D*D))-4*D+40 740 LOCATE 19,35:PRINT MID$(STR$(D-1),2,1); 750 A$=INKEY$:IF A$<>"" THEN 750 760 RETURN 1001 DATA 24,60,102,102,126,102,102 1002 DATA 126,51,51,63,51,51,126 1003 DATA 30,51,96,96,96,51,30 1004 DATA 124,54,51,51,51,54,124 1005 DATA 127,49,52,60,52,49,127 1006 DATA 127,49,52,60,52,48,120 1007 DATA 30,51,96,96,103,51,15 1008 DATA 102,102,102,126,102,102,102 1009 DATA 60,24,24,24,24,24,60 1010 DATA 15,6,6,6,102,102,60 1011 DATA 115,51,54,60,54,51,115 1012 DATA 120,48,48,48,49,51,127 1013 DATA 99,119,127,127,107,99,99 1014 DATA 99,115,123,111,103,99,99 1015 DATA 28,54,99,99,99,54,28 1016 DATA 126,51,51,62,48,48,120 1017 DATA 60,102,102,102,110,60,14 1018 DATA 126,51,51,62,54,51,115 1019 DATA 60,102,48,24,12,102,60 1020 DATA 126,90,24,24,24,24,60 1021 DATA 102,102,102,102,102,102,126 1022 DATA 102,102,102,102,102,60,24 1023 DATA 99,99,99,107,127,119,99 1024 DATA 99,99,54,28,28,54,99 1025 DATA 102,102,102,60,24,24,60 1026 DATA 127,99,70,12,25,51,127